100 GOTO 6490 110 : 120 N$="POWER OF LOGIC": N$=LEFT$(N$,12) 130 OPEN 1,8,15,("S:"+N$+".BAK"): CLOSE 1 140 OPEN 1,8,15,("R:"+N$+".BAK="+N$+".BAS"): CLOSE 1 150 SAVE (N$+".BAS"),8: VERIFY (N$+".BAS"),8 160 END 170 : 180 N$="PRINTERCODES": REM ZUM DRUCKEN RUN 180 190 OPEN 1,8,2,(N$+",P,R") 200 GET#1,I$: D1%=ASC(I$+CHR$(0)) 210 GET#1,I$: D2%=ASC(I$+CHR$(0)) 220 GET#1,I$: I%=ASC(I$+CHR$(0)): IN$="" 230 IF LEN(IN$)="#" AND T$<="Z") THEN 540 480 IF P%<41 THEN IF (T$>="[193]" AND T$<="[218]") THEN 540 490 IF T$="" AND P%<=LEN(I$) THEN P%=P%+1: GOTO 430 500 IF T$="[157]" AND P%>1 THEN P%=P%-1: GOTO 430 510 IF A=20 AND P%>1 THEN 560 520 IF A=13 THEN PR$=I$+CHR$(13):PRINT : GOTO 630 530 GOTO 440 540 IF P%=LEN(I$)+1 THEN I$=I$+T$: P%=P%+1: GOTO 430 550 I$=LEFT$(I$,P%-1)+T$+RIGHT$(I$,LEN(I$)-P%): P%=P%+1: GOTO 430 560 I$=LEFT$(I$,P%-2)+RIGHT$(I$,LEN(I$)-P%+1): P%=P%-1: GOTO 430 570 : 580 REM DRUCKE 590 : 600 PR$=CHR$(13): GOTO 620 610 PR$=PR$+CHR$(13) 620 ST$=TI$: PRINT PR$; 630 IF PR%=0 THEN RETURN 640 PR%=1 650 IF PR%>LEN(PR$) THEN RETURN 660 : Q$=MID$(PR$,PR%,1): IF Q$=C1$ OR Q$=C2$ THEN 780 670 : C%=PEEK(CT+ASC(Q$)) 680 : PRINT#2,CHR$(C%); 690 : IF C%<>13 THEN 780 700 : DZ%=DZ%+1 710 : IF DZ%>=DY%-DU% AND DZ%S2 THEN Q%(S1,S2)=S2+(SM%-S1)*SM%-0.5*(SM%-S1)*(SM%-S1+1) 1180 NEXT S2,S1 1190 RETURN 1200 : 1210 REM SPEICHERE 1220 : 1230 PR$="[196]ATEINAME? ": GOSUB 620: GOSUB 420: IF I$="" THEN RETURN 1240 N$=I$+".LOG" 1250 OPEN 1,8,15,("S:"+N$): CLOSE 1 1260 OPEN 1,8,2,N$+",S,W" 1270 PRINT#1,SM%: PRINT#1,ZM% 1280 FOR S=1 TO SM%: PRINT#1,F$(S) 1290 : FOR Z=1 TO ZM%: PRINT#1,B$(S,Z) 1300 NEXT Z,S 1310 FOR Q=1 TO QM% 1320 : FOR E=1 TO ZM% 1330 : PRINT#1,EX%(Q,E): PRINT#1,EY%(Q,E) 1340 : PRINT#1,BX%(Q,E): PRINT#1,BY%(Q,E) 1350 NEXT E,Q 1360 PRINT#1,RA%: IF RA%=0 THEN 1420 1370 FOR R=1 TO RA% 1380 : PRINT#1,RO%(R): PRINT#1,RP%(R) 1390 : PRINT#1,R1%(R,0): PRINT#1,R1%(R,1) 1400 : PRINT#1,R2%(R,0): PRINT#1,R2%(R,1) 1410 NEXT R 1420 CLOSE 1 1430 PR$="[196]ATEI IST GESPEICHERT.": GOSUB 610 1440 RETURN 1450 : 1460 REM LADE 1470 : 1480 PR$="[196]ATEINAME? ": GOSUB 620: GOSUB 420: IF I$="" THEN RETURN 1490 N$=I$+".LOG" 1500 OPEN 1,8,2,N$+",S,R" 1510 INPUT#1,SM%: INPUT#1,ZM% 1520 GOSUB 1030 INITIALISIERE 1530 FOR S=1 TO SM%: INPUT#1,F$(S) 1540 : FOR Z=1 TO ZM%: INPUT#1,B$(S,Z) 1550 NEXT Z,S 1560 FOR Q=1 TO QM% 1570 : FOR E=1 TO ZM% 1580 : INPUT#1,EX%(Q,E): INPUT#1,EY%(Q,E) 1590 : INPUT#1,BX%(Q,E): INPUT#1,BY%(Q,E) 1600 NEXT E,Q 1610 INPUT#1,RA%: IF RA%=0 THEN 1670 1620 FOR R=1 TO RA% 1630 : INPUT#1,RO%(R): INPUT#1,RP%(R) 1640 : INPUT#1,R1%(R,0): INPUT#1,R1%(R,1) 1650 : INPUT#1,R2%(R,0): INPUT#1,R2%(R,1) 1660 NEXT R 1670 CLOSE 1 1680 PR$="[196]ATEI IST GELADEN.": GOSUB 610 1690 RETURN 1700 : 1710 REM LASS EINGEBEN 1720 : 1730 GOSUB 600 1740 PR$="[215]IEVIELE [199]RUPPEN (2-12)? ": GOSUB 620:GOSUB 420: SM%=VAL(I$) 1750 PR$="[215]IEVIELE [197]INHEITEN (2-10)? ": GOSUB 620:GOSUB 420: ZM%=VAL(I$) 1760 GOSUB 1030 INITIALISIERE 1770 GOSUB 600 1780 PR$="[194]ITTE JETZT DIE [207]BJEKTE EINGEBEN": GOSUB 610 1790 PR$="- ALLE UNTERSCHIEDLICH BENANNT": GOSUB 610 1800 PR$="- GEGEBENENFALLS IN IHRER NATUERLICHEN": GOSUB 610 1810 PR$=" [207]RDNUNG": GOSUB 610 1820 GOSUB 600 1830 FOR S=1 TO SM% 1840 : PR$="[207]BERBEGRIFF VON [199]RUPPE "+CHR$(192+S)+" ? ":GOSUB 620:GOSUB 420: F$(S)=I$ 1850 : IF F$(S)="" THEN F$(S)=CHR$(192+S) 1860 : PR$="[194]ITTE"+STR$(ZM%)+" DAVON EINGEBEN!": GOSUB 610 1870 : FOR Z=1 TO ZM% 1880 : PR$="? ": GOSUB 620:GOSUB 420: B$(S,Z)=I$ 1890 : IF B$(S,Z)="" THEN B$(S,Z)=CHR$(64+S)+CHR$(48+Z) 1900 : NEXT Z 1910 NEXT S 1920 FOR Q=1 TO QM% 1930 : FOR E=1 TO ZM% 1940 : EX%(Q,E)=BW%: EY%(Q,E)=BW% 1950 : BX%(Q,E)=BW%: BY%(Q,E)=BW% 1960 NEXT E,Q 1970 RA%=0 1980 RETURN 1990 : 2000 REM FINDE BEGRIFFSPOSITION 2010 : 2020 S1%=-1 2030 FOR S=1 TO SM% 2040 : FOR Z=1 TO ZM% 2050 : IF P$=B$(S,Z) THEN S1%=S: Z1=Z 2060 NEXT Z,S 2070 IF S1%=-1 THEN PR$=C2$+"[207]BJEKT NICHT ERKANNT."+C1$: GOSUB 610 2080 RETURN 2090 : 2100 REM NENNE BEGRIFF UM 2110 : 2120 FOR S=1 TO SM% 2130 : IF F$(S)=B$ THEN F$(S)=A$: B$="" 2140 NEXT S 2150 IF B$="" THEN RETURN 2160 : 2170 P$=B$: GOSUB 2020 BEGRIFFSPOSITION 2180 IF S1%=-1 THEN RETURN 2190 B$(S1%,Z1)=A$: RETURN 2200 : 2210 REM GIB OBJEKTE AUS 2220 : 2230 GOSUB 600 2240 FOR S=1 TO SM% 2250 : PR$=C2$+F$(S)+C1$: GOSUB 610 2260 : FOR Z=1 TO ZM% 2270 : PR$=" "+B$(S,Z): GOSUB 610 2280 : NEXT Z 2290 NEXT S 2300 RETURN 2310 : 2320 REM NIMM BEZIEHUNG AUF 2330 : 2340 P$=B$: GOSUB 2020 BEGRIFFSPOSITION 2350 IF S1%=-1 THEN RETURN 2360 S2%=S1%:Z2=Z1 2370 P$=A$: GOSUB 2020 BEGRIFFSPOSITION 2380 IF S1%=-1 THEN RETURN 2390 IF K$="+" OR K$="-" OR K$="?" THEN 2510 2400 IF S1%=RO% OR S2%=RO% THEN PR$=C2$+"[194]EZ. NICHT RELATIV."+C1$: GOSUB 610: RETURN 2410 IF RA%S2% THEN I%=S1%:S1%=S2%:S2%=I%: I%=Z1:Z1=Z2:Z2=I% 2530 Q=Q%(S1%,S2%) 2540 IF K$<>"-" THEN 2570 2550 EX%(Q,Z2)=EX%(Q,Z2) AND (BW%-PT%(Z1)) 2560 EY%(Q,Z1)=EY%(Q,Z1) AND (BW%-PT%(Z2)) 2570 IF K$<>"+" THEN 2640 2580 FOR E=1 TO ZM% 2590 : IF E=Z2 THEN EX%(Q,Z2)=PT%(Z1) 2600 : IF E<>Z2 THEN EX%(Q,E)=EX%(Q,E) AND (BW%-PT%(Z1)) 2610 : IF E=Z1 THEN EY%(Q,Z1)=PT%(Z2) 2620 : IF E<>Z1 THEN EY%(Q,E)=EY%(Q,E) AND (BW%-PT%(Z2)) 2630 NEXT E 2640 IF K$<>"?" THEN 2670 2650 EX%(Q,Z2)=EX%(Q,Z2) OR PT%(Z1) 2660 EY%(Q,Z1)=EY%(Q,Z1) OR PT%(Z2) 2670 RETURN 2680 : 2690 REM ELEMINIERE REL. BEZ. 2700 : 2710 RA%=0 2720 PR$="[193]LLE REL. [194]EZIEHUNGEN ELEMINIERT.": GOSUB 610 2730 RETURN 2740 : 2750 REM ELEMINIERE FOLGEBEZ. 2760 : 2770 FOR Q=1 TO QM% 2780 : FOR E=1 TO ZM% 2790 : BX%(Q,E)=BW%: BY%(Q,E)=BW% 2800 : NEXT E,Q 2810 PR$="[193]LLE [198]OLGEBEZIEHUNGEN ELEMINIERT.": GOSUB 610 2820 WI%=0 2830 RETURN 2840 : 2850 REM DECKE WIDERSPRUCH AUF 2860 : 2870 PR$=C2$+"[215]IDERSPRUCH. [207]BJEKT KANN EINER [199]RUPPE": GOSUB 610 2880 PR$="NICHT ZUGEORDNET WERDEN.": GOSUB 610 2890 IF BX%(Q,E)=0 THEN PR$=B$(S2%(Q),E)+", "+F$(S1%(Q)): GOSUB 610 2900 IF BY%(Q,E)=0 THEN PR$=B$(S1%(Q),E)+", "+F$(S2%(Q)): GOSUB 610 2910 PR$="[203]ORREKTUR DER [197]INGANGSBEZIEHUNGEN": GOSUB 610 2920 PR$="IST ERFORDERLICH. [194]ITTE WARTEN."+C1$: GOSUB 610 2930 WI%=-1 2940 RETURN 2950 : 2960 REM SETZE MINUSZEICHEN 2970 : 2980 A=Q%(S1%,S2%) 2990 IF S1%S2% THEN B=Z2: C=Z1 3010 : 3020 IF WI% OR (BX%(A,C) AND PT%(B))=0 THEN RETURN 3030 BX%(A,C)=BX%(A,C) AND (BW%-PT%(B)) 3040 BY%(A,B)=BY%(A,B) AND (BW%-PT%(C)) 3050 IF BX%(A,C)=0 THEN Q=A: E=C: GOSUB 2870: BX%(A,C)=BX%(A,C) OR PT%(B):RETURN 3060 IF BY%(A,B)=0 THEN Q=A: E=B: GOSUB 2870: BY%(A,B)=BY%(A,B) OR PT%(C):RETURN 3070 F%=-1: M%=M%+1 3080 IF I$=II$ THEN 3110 3090 IF LEN(I$)<10 THEN PR$=" "+I$+LEFT$(L$,10-LEN(I$)): GOSUB 620: GOTO 3120 3100 PR$=" "+I$: GOSUB 610 3110 PR$=" ": GOSUB 620 3120 PR$=B$(S1%(A),B)+"-"+B$(S2%(A),C): GOSUB 610: II$=I$: RETURN 3130 : 3140 REM STELLE BEZ. FEST 3150 : 3160 B%=0 3170 IF S1%<>S2% THEN 3200 3180 IF Z1=Z2 THEN B%=-1: RETURN 3190 RETURN 3200 A=Q%(S1%,S2%) 3210 IF S1%S2% THEN B=Z2: C=Z1 3230 IF (BX%(A,C) AND PT%(B))=PT%(B) THEN B%=-1 3240 RETURN 3250 : 3260 REM GIB BEZIEHUNGEN AUS 3270 : 3280 PR$="[197]INGANGSBEZ. BETONT":GOSUB 610 3290 PR$="[198]OLGEBEZ. UNBETONT": GOSUB 610 3300 FOR Q=1 TO QM% 3310 : PR$=CHR$(13)+C2$+F$(S2%(Q))+" UND "+F$(S1%(Q))+C1$+CHR$(13): GOSUB 610 3320 : FOR Q2=1 TO ZM% 3330 : PR$=" " 3340 : FOR Q1=1 TO ZM% 3350 : IF (EX%(Q,Q2) AND PT%(Q1))=0 THEN PR$=PR$+C2$+"- ": GOTO 3380 3360 : IF (BX%(Q,Q2) AND PT%(Q1))=0 THEN PR$=PR$+C1$+"- ": GOTO 3380 3370 : PR$=PR$+" " 3380 : NEXT Q1 3390 : PR$=PR$+C1$+LEFT$(B$(S2%(Q),Q2),ML): GOSUB 610 3400 : NEXT Q2 3410 : FOR P=1 TO ML 3420 : PR$=" " 3430 : FOR Z=1 TO ZM% 3440 : PR$=PR$+MID$(B$(S1%(Q),Z)+L$,P,1)+" " 3450 : NEXT Z 3460 : GOSUB 610 3470 : NEXT P 3480 NEXT Q 3490 GOSUB 600 3500 : 3510 IF RA%=0 THEN RETURN 3520 FOR R=1 TO RA% 3530 : PR$=STR$(R)+". ": GOSUB 620 3540 : IF RP%(R)=0 THEN PR$="<": GOSUB 620 3550 : IF RP%(R)=-1 THEN PR$="#": GOSUB 620 3560 : IF RP%(R)>0 THEN PR$=CHR$(48+RP%(R))+"<": GOSUB 620 3570 : PR$=F$(RO%(R))+" ": GOSUB 620 3580 : PR$=B$(R1%(R,0),R1%(R,1))+",": GOSUB 620 3590 : PR$=B$(R2%(R,0),R2%(R,1)): GOSUB 610 3600 NEXT R 3610 RETURN 3620 : 3630 REM RECHNE 3640 : 3650 PR$="[210]ECHENVORGANG:"+CHR$(13): GOSUB 610 3660 TI$="000000" 3670 FOR Q=1 TO QM% 3680 : FOR E=1 TO ZM% 3690 : BX%(Q,E)=BX%(Q,E) AND EX%(Q,E) 3700 : BY%(Q,E)=BY%(Q,E) AND EY%(Q,E) 3710 NEXT E,Q 3720 : 3730 M%=0: MM%=QM%*(ZM%*ZM%-ZM%) 3740 FOR Q=1 TO QM% 3750 : FOR E=1 TO ZM% 3760 : IF BX%(Q,E)=0 OR BY%(Q,E)=0 THEN GOSUB 2870 3770 : FOR B=1 TO ZM% 3780 : IF (BX%(Q,E) AND PT%(B))=0 THEN M%=M%+1 3790 NEXT B,E,Q 3800 IF WI% THEN GOSUB 2770: RETURN 3810 : 3820 PR$="[194]EKANNT:"+STR$(INT(100*M%/MM%+.5))+" %": GOSUB 610 3830 F%=0 3840 PR$=C2$+"[197]RGAENZE..."+C1$: GOSUB 610 3850 FOR Q=1 TO QM% 3860 : I$="Q"+MID$(STR$(Q),2) 3870 : FOR Y=1 TO ZM% 3880 : IF NOT FNPL(BX%(Q,Y)) THEN 3940 3890 : X=FNLG(BX%(Q,Y)) 3900 : IF BY%(Q,X)=PT%(Y) THEN 3940 3910 : FOR E=1 TO ZM% 3920 : IF E<>Y THEN A=Q: B=X: C=E: GOSUB 3020 3930 : NEXT E 3940 : NEXT Y 3950 : FOR X=1 TO ZM% 3960 : IF NOT FNPL(BY%(Q,X)) THEN 4020 3970 : Y=FNLG(BY%(Q,X)) 3980 : IF BX%(Q,Y)=PT%(X) THEN 4020 3990 : FOR E=1 TO ZM% 4000 : IF E<>X THEN A=Q: B=E: C=Y: GOSUB 3020 4010 : NEXT E 4020 : NEXT X 4030 NEXT Q: IF SM%<3 OR WI% THEN 4440 4040 : 4050 PR$=C2$+"[213]EBERTRAGE..."+C1$: GOSUB 610 4060 Y%=1 4070 : X%=1 4080 : Q1=Q%(X%,SM%-Y%+1) 4090 : FOR N=1 TO SM%-X%-Y% 4100 : Q2=Q%(X%+N,SM%-Y%+1) 4110 : Q3=Q%(X%,X%+N) 4120 : I$="Q"+MID$(STR$(Q1),2)+","+MID$(STR$(Q2),2)+","+MID$(STR$(Q3),2) 4130 : FOR Z=1 TO ZM% 4140 : V=BX%(Q2,Z): IF V=BW% OR FNPL(BX%(Q1,Z)) THEN 4180 4150 : A=Q1: C=Z: FOR B=1 TO ZM% 4160 : IF (V AND (BW%-BY%(Q3,B)))=V THEN GOSUB 3020 4170 : NEXT B 4180 : V=BY%(Q3,Z): IF V=BW% OR FNPL(BY%(Q1,Z)) THEN 4220 4190 : A=Q1: B=Z: FOR C=1 TO ZM% 4200 : IF (V AND (BW%-BX%(Q2,C)))=V THEN GOSUB 3020 4210 : NEXT C 4220 : V=BX%(Q1,Z): IF V=BW% OR FNPL(BX%(Q2,Z)) THEN 4260 4230 : A=Q2: C=Z: FOR B=1 TO ZM% 4240 : IF (V AND (BW%-BX%(Q3,B)))=V THEN GOSUB 3020 4250 : NEXT B 4260 : V=BX%(Q3,Z): IF V=BW% OR FNPL(BY%(Q2,Z)) THEN 4300 4270 : A=Q2: B=Z: FOR C=1 TO ZM% 4280 : IF (V AND (BW%-BX%(Q1,C)))=V THEN GOSUB 3020 4290 : NEXT C 4300 : V=BY%(Q1,Z): IF V=BW% OR FNPL(BY%(Q3,Z)) THEN 4340 4310 : A=Q3: B=Z: FOR C=1 TO ZM% 4320 : IF (V AND (BW%-BY%(Q2,C)))=V THEN GOSUB 3020 4330 : NEXT C 4340 : V=BY%(Q2,Z): IF V=BW% OR FNPL(BX%(Q3,Z)) THEN 4390 4350 : A=Q3: C=Z: FOR B=1 TO ZM% 4360 : IF (V AND (BW%-BY%(Q1,B)))=V THEN GOSUB 3020 4370 : NEXT B 4380 : 4390 : NEXT Z 4400 : NEXT N 4410 : X%=X%+1: IF X%<=SM%-Y%-1 THEN 4080 4420 Y%=Y%+1: IF Y%<=SM%-2 THEN 4070 4430 : 4440 IF RA%=0 OR WI% THEN 5940 4450 PR$=C2$+"[210]ELATIVIERE..."+C1$: GOSUB 610 4460 FOR R=1 TO RA% 4470 : I$="B"+MID$(STR$(R),2) 4480 : Q%=Q%(RO%(R),R1%(R,0)) 4490 : IF RO%(R)R1%(R,0) THEN B1%=BY%(Q%,R1%(R,1)) 4510 : Q%=Q%(RO%(R),R2%(R,0)) 4520 : IF RO%(R)R2%(R,0) THEN B2%=BY%(Q%,R2%(R,1)) 4540 : IF RP%(R)=-1 THEN 4870 4550 : 4560 : D%=RP%(R): IF D%=0 THEN D%=1 4570 : MI%=1 4580 : IF (B1% AND PT%(MI%))=0 THEN MI%=MI%+1: GOTO 4580 4590 : FOR E=1 TO MI%+D%-1 4600 : S1%=R2%(R,0): Z1=R2%(R,1) 4610 : S2%=RO%(R): Z2=E 4620 : GOSUB 2980 4630 : NEXT E 4640 : MA%=ZM% 4650 : IF (B2% AND PT%(MA%))=0 THEN MA%=MA%-1: GOTO 4650 4660 : FOR E=ZM% TO MA%-D%+1 STEP-1 4670 : S1%=R1%(R,0): Z1=R1%(R,1) 4680 : S2%=RO%(R): Z2=E 4690 : GOSUB 2980 4700 : NEXT E 4710 : 4720 : IF RP%(R)=0 THEN 5010 4730 : IF FNPL(B1%)=0 THEN 4790 4740 : FOR E=MI%+D%+1 TO ZM% 4750 : S1%=R2%(R,0): Z1=R2%(R,1) 4760 : S2%=RO%(R): Z2=E 4770 : IF E<=ZM% THEN GOSUB 2980 4780 : NEXT E 4790 : IF FNPL(B2%)=0 THEN 5010 4800 : FOR E=MA%-D%-1 TO 1 STEP-1 4810 : S1%=R1%(R,0): Z1=R1%(R,1) 4820 : S2%=RO%(R): Z2=E 4830 : IF E>=1 THEN GOSUB 2980 4840 : NEXT E 4850 : GOTO 5010 4860 : 4870 : FOR E=1 TO ZM% 4880 : IF E>1 THEN IF (B1% AND PT%(E-1))<>0 THEN 4930 4890 : IF E0 THEN 4930 4900 : S1%=R2%(R,0): Z1=R2%(R,1) 4910 : S2%=RO%(R): Z2=E 4920 : GOSUB 2980 4930 : NEXT E 4940 : FOR E=1 TO ZM% 4950 : IF E>1 THEN IF (B2% AND PT%(E-1))<>0 THEN 5000 4960 : IF E0 THEN 5000 4970 : S1%=R1%(R,0): Z1=R1%(R,1) 4980 : S2%=RO%(R): Z2=E 4990 : GOSUB 2980 5000 : NEXT E 5010 NEXT R 5020 : 5030 REM BILDE #-KETTEN 5040 : 5050 FOR R=1 TO SM%: KO%(R)=0: NEXT R 5060 K1%=ZM%+1: K2%=ZM% 5070 KF%=0: FOR R=1 TO RA% 5080 : IF RP%(R)<>-1 THEN 5580 5090 : IF K1%-1RO% THEN 5580 5150 : 5160 : S1%=R1%(R,0): Z1=R1%(R,1) 5170 : S2%=K%(K1%,0): Z2=K%(K1%,1) 5180 : GOSUB 3160 BEZIEHUNG B% 5190 : IF B%=0 THEN 5260 5200 : S1%=R2%(R,0): Z1=R2%(R,1) 5210 : S2%=K%(K1%+1,0): Z2=K%(K1%+1,1) 5220 : GOSUB 3160 BEZIEHUNG B% 5230 : IF B%<>0 THEN 5260 5240 : K1%=K1%-1: P%=K1%: GOTO 5570 R2% AM ANFANG ANFUEGEN 5250 : 5260 : S1%=R2%(R,0): Z1=R2%(R,1) 5270 : S2%=K%(K1%,0): Z2=K%(K1%,1) 5280 : GOSUB 3160 BEZIEHUNG B% 5290 : IF B%=0 THEN 5360 5300 : S1%=R1%(R,0): Z1=R1%(R,1) 5310 : S2%=K%(K1%+1,0): Z2=K%(K1%+1,1) 5320 : GOSUB 3160 BEZIEHUNG B% 5330 : IF B%<>0 THEN 5360 5340 : K1%=K1%-1: P%=K1%: GOTO 5560 R1% AM ANFANG ANFUEGEN 5350 : 5360 : S1%=R1%(R,0): Z1=R1%(R,1) 5370 : S2%=K%(K2%,0): Z2=K%(K2%,1) 5380 : GOSUB 3160 BEZIEHUNG B% 5390 : IF B%=0 THEN 5460 5400 : S1%=R2%(R,0): Z1=R2%(R,1) 5410 : S2%=K%(K2%-1,0): Z2=K%(K2%-1,1) 5420 : GOSUB 3160 BEZIEHUNG B% 5430 : IF B%<>0 THEN 5460 5440 : K2%=K2%+1: P%=K2%: GOTO 5570 R2% AM ENDE ANFUEGEN 5450 : 5460 : S1%=R2%(R,0): Z1=R2%(R,1) 5470 : S2%=K%(K2%,0): Z2=K%(K2%,1) 5480 : GOSUB 3160 BEZIEHUNG B% 5490 : IF B%=0 THEN 5580 NEXT 5500 : S1%=R1%(R,0): Z1=R1%(R,1) 5510 : S2%=K%(K2%-1,0): Z2=K%(K2%-1,1) 5520 : GOSUB 3160 BEZIEHUNG B% 5530 : IF B%<>0 THEN 5580 NEXT 5540 : K2%=K2%+1: P%=K2%: GOTO 5560 R1% AM ENDE ANFUEGEN 5550 : 5560 : KF%=-1: K%(P%,0)=R1%(R,0): K%(P%,1)=R1%(R,1): GOTO 5580 5570 : KF%=-1: K%(P%,0)=R2%(R,0): K%(P%,1)=R2%(R,1) 5580 NEXT R 5590 IF KF% THEN 5070 5600 IF K1%+2>K2% THEN 5940 5610 I$="#"+F$(RO%)+" " 5620 FOR I=K1% TO K2% 5630 : I$=I$+B$(K%(I,0),K%(I,1)) 5640 : IF I<>K2% THEN I$=I$+"," 5650 NEXT I 5660 FOR I=K1% TO K2% 5670 : KB%(I)=0 5680 NEXT I 5690 FOR P=1 TO ZM%-(K2%-K1%) 5700 : FOR I=K1% TO K2% 5710 : S1%=K%(I,0): Z1=K%(I,1) 5720 : S2%=RO% : Z2=P+I-K1% 5730 : GOSUB 3160 BEZIEHUNG B% 5740 : IF B%<>0 THEN KB%(I)=KB%(I) OR PT%(P+I-K1%) 5750 : NEXT I 5760 : FOR I=K2% TO K1% STEP-1 5770 : S1%=K%(I,0): Z1=K%(I,1) 5780 : S2%=RO% : Z2=P+K2%-I 5790 : GOSUB 3160 BEZIEHUNG B% 5800 : IF B%<>0 THEN KB%(I)=KB%(I) OR PT%(P+K2%-I) 5810 : NEXT I 5820 NEXT P 5830 : 5840 FOR I=K1% TO K2% 5850 : FOR Z=1 TO ZM% 5860 : IF (KB%(I) AND PT%(Z))<>0 THEN 5900 5870 : S1%=K%(I,0): Z1=K%(I,1) 5880 : S2%=RO%: Z2=Z 5890 : GOSUB 2980 LEGE BEZ. FEST 5900 : NEXT Z 5910 NEXT I 5920 GOTO 5060 5930 : 5940 IF WI%=0 AND F%=-1 AND M%"L" AND I$<>"E" THEN 6630 6640 PR$=I$: GOSUB 610 6650 IF I$="L" THEN GOSUB 1480: GOTO 6670 6660 IF I$="E" THEN GOSUB 1730 6670 PR$=CHR$(13): GOSUB 610 6680 PR$="[194]ITTE JETZT ALLE BEKANNTEN": GOSUB 610 6690 PR$="[194]EZIEHUNGEN ZWISCHEN DEN GESAMMELTEN": GOSUB 610 6700 PR$="[207]BJEKTEN EINGEBEN. [196]ER [194]EFEHLSSYNTAX": GOSUB 610 6710 PR$="WIRD MIT <[210][197][212][213][210][206]> AUFGELISTET.": GOSUB 610 6720 GOSUB 600: PR$=">": GOSUB 620 6730 GOSUB 420 6740 IF I$="" THEN GOSUB 6240: GOTO 6720 6750 IF I$="O" THEN GOSUB 2230: GOTO 6720 6760 IF I$="B" THEN GOSUB 3280: GOTO 6720 6770 IF I$="L" THEN GOSUB 1480: GOTO 6720 6780 IF I$="@F" THEN GOSUB 2770: GOTO 6720 6790 IF I$="@R" THEN GOSUB 2710: GOTO 6720 6800 IF I$="S" THEN GOSUB 1230: GOTO 6720 6810 IF I$="R" THEN GOSUB 3650: GOTO 6720 6820 IF I$="T" THEN GOSUB 6040: GOTO 6720 6830 IF LEN(I$)<3 THEN PR$=C2$+"[198]ALSCHE [197]INGABE."+C1$: GOSUB 610: GOTO 6730 6840 I%=1 6850 K$=MID$(I$,I%,1) 6860 IF K$="+" THEN GOSUB 7060: GOSUB 2340: GOTO 6720 6870 IF K$="-" THEN GOSUB 7060: GOSUB 2340: GOTO 6720 6880 IF K$="?" THEN GOSUB 7060: GOSUB 2340: GOTO 6720 6890 IF K$="=" THEN GOSUB 7060: GOSUB 2120: GOTO 6720 6900 IF K$="<" THEN 6940 6910 IF K$="#" THEN RP%=-1: GOTO 6960 6920 I%=I%+1: IF I%1 THEN RP%=VAL(LEFT$(I$,I%-1)) 6960 RO%=0: I%=I%+1 6970 FOR O=1 TO SM% 6980 : IF MID$(I$,I%,LEN(F$(O))+1)=F$(O)+" " THEN RO%=O 6990 NEXT O 7000 IF RO%=0 THEN PR$=C2$+"[207]RDNUNGSKRITERIUM NICHT ERKANNT."+C1$:GOSUB610:GOTO 6720 7010 I$=MID$(I$,I%+LEN(F$(RO%))+1): I%=1 7020 IF MID$(I$,I%,1)="," THEN GOSUB 7060: GOSUB 2340: GOTO 6720 7030 I%=I%+1: IF I%<=LEN(I$) THEN 7020 7040 PR$=C2$+"[203]OMMA FEHLT."+C1$: GOSUB 610: GOTO 6720 7050 : 7060 A$=MID$(I$,1,I%-1): B$=MID$(I$,I%+1,LEN(I$)-I%): RETURN